﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Acamps.Framework.NegocioRegras;

namespace Acamps.Framework
{
    public class Negocio
    {
        private string _stringConexao;
        private EventoNegocio _acampamentoNegocio;
        private CampistaNegocio _campistaNegocio;
        private EstadoCivilNegocio _estadoCivilNegocio;
        private TipoAcampsNegocio _tipoAcampsNegocio;
        private TipoSanguineoNegocio _tipoSanguineoNegocio;
        private LocalNegocio _local;
        private TipoParticipacaoNegocio _tipoParticipacao;
        private LivroVisitasNegocio _livroVisitas;
        private LoginNegocio _loginNegocio;
        private FichasNegocio _fichasNegocio;
        private NewsletterEvangelhoNegocio _newsletterEvangelhoNegocio;
        private EvangelhoNegocio _evangelhoNegocio;
        private FuncaoNegocio _funcaoNegocio;
        private TriboNegocio _triboNegocio;

        public Negocio (string stringConexao)
        {
            _stringConexao = stringConexao;
        }

        public LoginNegocio LoginNegocio
        {
            get
            {
                if (_loginNegocio == null) _loginNegocio = new LoginNegocio(_stringConexao);
                return _loginNegocio;
            }
        }

        public EventoNegocio Acampamento
        {
            get
            {
                if (_acampamentoNegocio == null) _acampamentoNegocio = new EventoNegocio(_stringConexao);
                return _acampamentoNegocio;
            }
        }

        public LivroVisitasNegocio LivroVisitas
        {
            get
            {
                if (_livroVisitas == null) _livroVisitas = new LivroVisitasNegocio(_stringConexao);
                return _livroVisitas;
            }
        }

        public CampistaNegocio Campista
        {
            get
            {
                if(_campistaNegocio == null) _campistaNegocio = new CampistaNegocio(_stringConexao);
                return _campistaNegocio;
            }
        }

        public EstadoCivilNegocio EstadoCivil
        {
            get
            {
                if (_estadoCivilNegocio == null) _estadoCivilNegocio = new EstadoCivilNegocio(_stringConexao);
                return _estadoCivilNegocio;
            }
        }

        public TipoAcampsNegocio TipoAcamps
        {
            get
            {
                if (_tipoAcampsNegocio == null) _tipoAcampsNegocio = new TipoAcampsNegocio(_stringConexao);
                return _tipoAcampsNegocio;
            }
        }

        public TipoSanguineoNegocio TipoSanguineo
        {
            get
            {
                if (_tipoSanguineoNegocio == null) _tipoSanguineoNegocio = new TipoSanguineoNegocio(_stringConexao);
                return _tipoSanguineoNegocio;
            }
        }

        public LocalNegocio Local
        {
            get
            {
                if (_local == null) _local = new LocalNegocio(_stringConexao);
                return _local;
            }
        }

        public TipoParticipacaoNegocio TipoParticipacao
        {
            get
            {
                if (_tipoParticipacao == null) _tipoParticipacao = new TipoParticipacaoNegocio(_stringConexao);
                return _tipoParticipacao;
            }
        }

        public FichasNegocio FichasNegocio
        {
            get
            {
                if (_fichasNegocio == null) _fichasNegocio = new FichasNegocio(_stringConexao);
                return _fichasNegocio;
            }
        }

        public NewsletterEvangelhoNegocio NewsletterEvangelhoNegocio
        {
            get
            {
                if (_newsletterEvangelhoNegocio == null)
                    _newsletterEvangelhoNegocio = new NewsletterEvangelhoNegocio(_stringConexao);
                return _newsletterEvangelhoNegocio;
            }
        }

        public EvangelhoNegocio EvangelhoNegocio
        {
            get
            {
                if (_evangelhoNegocio == null)
                    _evangelhoNegocio = new EvangelhoNegocio(_stringConexao);
                return _evangelhoNegocio;
            }
        }

        public FuncaoNegocio FuncaoNegocio
        {
            get
            {
                if (_funcaoNegocio == null)
                    _funcaoNegocio = new FuncaoNegocio(_stringConexao);
                return _funcaoNegocio;
            }
        }

        public TriboNegocio TriboNegocio
        {
            get
            {
                if (_triboNegocio == null)
                    _triboNegocio = new TriboNegocio(_stringConexao);
                return _triboNegocio;
            }
        }

        
    }
}
